/**
 * coderTips
 * params code 01 | 02...
 * 需要统一规定页面 变量var _coder = {'01':'ok message','-01':'err message'};
 **/
var coderTips = function(code){
	if(code==null||code==''){return;};
	if(code.indexOf('-')==-1){
		$.successTip(_coder[code],2000)
	}else{
		$.alertTip(_coder[code],2000)
	}
};
function resizeIframeHeight(h){
	h = h || Math.max($('body').height(),$('html').height());
	if(h==0)return;
	$(window.parent.document).find('#workFrame').height(h);
};
function iframeAutoResize(isShowLoading){
	if(isShowLoading){
		top.$('body').modal();
	}
	$('#workFrame').load(function(){    
		var body = $(this).contents().find("body"),
			html = $(this).contents().find("html"),
			bHeight = body.outerHeight(),
			hHeight = html.outerHeight();
		$(this).height(Math.max(bHeight,hHeight));
		if(isShowLoading){
			top.$('body').unmodal();
		}
    });   
};
/**
* @param jquery object
* 
***/
function emailHint(obj){
	$(document).click(function() {
		$("#email_hint").hide()
	});
	obj.bind('keyup',function(){
		var mail_fix = ["qq.com","126.com","163.com","foxmail.com","gmail.com","hotmail.com","vip.qq.com","yahoo.cn","yahoo.com","yahoo.com.cn","live.com","msn.com","2008.sina.com","21cn","263.net","chinaren.com","kimo.com","live.cn","sina.cn","sina.com","sogou.com","sohu.com","yeah.net"];
		var list_html = '<h1 style="color:#666">请选择邮箱后缀</h1>';
		var id = '#'+$(this).attr('id');
		for (var i = 0; i < mail_fix.length; i++) {
			if ($(this).val().indexOf("@") < 0) {
				list_html += ' <a href="javascript:;"  onclick="javascript:$(\''+id+'\').val(\'' + $(this).val() + '@' + mail_fix[i] + '\');$(\'#email_hint\').hide(); $(\''+id+'\').blur();">' + $(this).val() + '@' + mail_fix[i] + '</a>';
			}else {
				var mail_a = $(this).val().split("@");
				if (mail_fix[i].indexOf(mail_a[1]) == 0){
					list_html += ' <a href="javascript:;"   onclick="javascript:$(\''+id+'\').val(\'' + mail_a[0] + "@" + mail_fix[i] + '\');$(\'#email_hint\').hide();$(\''+id+'\').blur();">' + mail_a[0] + '@' + mail_fix[i] + '</a>';
				}
			}
		}
		$("#email_hint").html(list_html);
		$("#email_hint").css({left:obj.offset().left,top:(obj.offset().top)}).show();
	});
};
function removeHTML(s){
	s = s.replace(/<\/?.+?>/g,"");
	return s;
};
function SelfTextCut(str,bs,startCount,endCount){
	bs = "******";
	str = str.replace(/\n|\r/g,'');
	return str.substring(0,startCount)+ bs + str.substring(str.length-endCount,str.length)
};
function  SelfTextCut2(str, count,bs) {
	bs = bs || "......";
	str = str.replace(/\n|\r/g,'');
    if (str.length > count) {
        return str.substring(0, count / 2) + bs + str.substring(str.length - (count / 2), str.length)
    };
    return str;
};
function  TextCut(str, count) {
	str = str.replace(/\n|\r/g,'');
    if (str.length > count) {
        return str.substring(0, count / 2) + "......" + str.substring(str.length - (count / 2), str.length)
    };
    return str;
};
function  TextCutEnd(str, count) {
	str = str.replace(/\n|\r/g,'');
	
    if (CheckUtil.trueLength(str) > parseInt(count)*2 ) {
        return str.substring(0, count-3) + "...";
    };
    return str;
};
function TextCount(str) {
    var len = str.length;
    var reLen = 0;
    for (var i = 0; i < len; i++) {
        if (/^[\u4e00-\u9fa5]{0,}$/.test(str.substring(i, i + 1))) {
            reLen += 2;
        } else {
            if (reLen == 0) {
                reLen++;
            }
            reLen++;
        }
    }
    return reLen;
};
var isScroll = function (el) {
    var elems = el ? [el] : [document.documentElement, document.body];
    var scrollX = false, scrollY = false;
    for (var i = 0; i < elems.length; i++) {
        var o = elems[i];
        var sl = o.scrollLeft;
        o.scrollLeft += (sl > 0) ? -1 : 1;
        o.scrollLeft !== sl && (scrollX = scrollX || true);
        o.scrollLeft = sl;
        var st = o.scrollTop;
        o.scrollTop += (st > 0) ? -1 : 1;
        o.scrollTop !== st && (scrollY = scrollY || true);
        o.scrollTop = st;
    }
    return {
        scrollX: scrollX,
        scrollY: scrollY
    };
};

/**
 * JSP标签静态工具类
 * 
 * @author 程伟平 2012-6-12
 */
function TagUtil() {
	
}

/**
 * 初始化级联下拉框选项列表
 * 
 * @author 程伟平 2012-6-12
 */
TagUtil.initCascadedSelectOptions = function (selectId) {
	// 递归初始化下级下拉框选项列表
	var _selects = $('select[parentCascadedSelect='+selectId+']');
	if(_selects != null && _selects.length > 0) {
		for(var i=0; i<_selects.length; i++) {
			// 初始化下拉框选项列表
			var _selectId = $(_selects[i]).attr("id");
			$("#"+_selectId).html('<option value="">'+$('#'+_selectId+' option:first').text()+'</option>\n');
			TagUtil.initCascadedSelectOptions(_selectId);
		}
	}
}

/**
 * 初始化下拉框选项列表
 * 
 * @author 程伟平 2012-6-13
 */
TagUtil.initSelectOptions = function (selectId) {
	//初始化级联下拉框选项列表
	TagUtil.initCascadedSelectOptions(selectId);

	var html = '<option value="">'+$('#'+selectId+' option:first').text()+'</option>\n';
	var select = $("#"+selectId); 
	var ajaxURL = select.attr("ajaxURL");
	if(ajaxURL == undefined){
		return false;
	}
	
	// 如果是下级下拉框，添加上级下拉框参数。
	var parentCascadedSelectId = select.attr("parentCascadedSelect");
	if(parentCascadedSelectId != null && parentCascadedSelectId.length > 0) {
		// 上级下拉框参数名称
		var paramName = select.attr("parentParamName") != null && select.attr("parentParamName").length > 0 ? select.attr("parentParamName") : "parentId";
		var parentVal = $("#"+parentCascadedSelectId).val();
		if (parentVal != null && parentVal.length > 0) {
			ajaxURL += "&"+paramName+"="+parentVal;
		} else { // 如果是下级下拉框，且上级下拉框值为空，则直接返回，不初始化；
			return false;
		}
	}
	if(ajaxURL.indexOf("?") > 0){
		ajaxURL += "&token="+sessionStorage.getItem("token")+"&refresh="+Math.random()
	} else {
		ajaxURL += "?token="+sessionStorage.getItem("token")+"&refresh="+Math.random()
	}
	// AJAX请求
	$.ajax({
        url: ajaxURL,
        type: "get",
        async: false,
        dataType: "json",
        success: function(data) {
            if (data != null) {
                var options = eval(data); var selectVal = select.attr("selectVal"); var _html = select.html();
                if(selectVal != null && selectVal.length > 0) {
	                for (var k = 0; k < options.length; k++) {
	                	if(selectVal == options[k].val) {
	                		 _html += '<option value="' + options[k].value + '" selected="selected">' + options[k].label + '</option>\n';
	                	} else {
	                		 _html += '<option value="' + options[k].value + '">' + options[k].label + '</option>\n';
	                	}
	                }
	            } else {
        			// 是否默认首项
        			var isDefault = select.attr("isDefault"); // alert("是否默认首项:"+isDefault);
        			if(isDefault != null && isDefault == "true") {
          				for (var k = 0; k < options.length; k++) {
            				if(k == 0) {
              					_html += "<option value=\"" + options[k].value + "\" selected=\"selected\">" + options[k].label + "</option>\n";
            				} else {
              					_html += "<option value=\"" + options[k].value + "\">" + options[k].label + "</option>\n";
            				}
          				}
        			} else {
          				for (var k = 0; k < options.length; k++) {
            				_html += "<option value=\"" + options[k].value + "\">" + options[k].label + "</option>\n";
          				}
        			}
      			}
                select.html(_html);
            }
        }
    });
}

/**
 * 刷新级联下拉框选项列表
 * 
 * @author 程伟平 2012-6-12
 */
TagUtil.fillOptions = function(selectId) {
	//初始化级联下拉框选项列表
	TagUtil.initCascadedSelectOptions(selectId);

	var html = '<option value="">'+$('#'+selectId+' option:first').text()+'</option>\n';
	//下级下拉框
	var _selects = $('select[parentCascadedSelect='+selectId+']');
	if(_selects != null && _selects.length > 0) {
		for(var i=0; i<_selects.length; i++) {
			// 刷新下拉框选项列表
			var _select = $(_selects[i]); 
			var ajaxURL = _select.attr("ajaxURL");
			if(ajaxURL.indexOf("?") > 0){
				ajaxURL += "&token="+sessionStorage.getItem("token")
			} else {
				ajaxURL += "?token="+sessionStorage.getItem("token")
			}
			
			// 上级下拉框参数名称
			var paramName = _select.attr("parentParamName") != null && _select.attr("parentParamName").length > 0 ? _select.attr("parentParamName") : "parentId";
			var parentVal = $("#"+selectId).val();
			if (parentVal != null && parentVal.length > 0) {
				ajaxURL += "&"+paramName+"="+parentVal+"&refresh="+Math.random();
				$.ajax({
			        url: ajaxURL,
			        type: "get",
			        async: false,
			        dataType: "json",
			        success: function(data) {
			            if (data != null) {
			                var options = eval(data); var _html = _select.html();
			                // 是否默认首项
            				var isDefault = _select.attr("isDefault"); // alert("是否默认首项:"+isDefault);
            				if(isDefault != null && isDefault == "true") {
              					for (var k = 0; k < options.length; k++) {
                					if(k == 0) { 
                  						_html += "<option value=\"" + options[k].value + "\" selected=\"selected\">" + options[k].label + "</option>\n";
                					} else {
                  						_html += "<option value=\"" + options[k].value + "\">" + options[k].label + "</option>\n";
                					}
              					}
            				} else {
              					for (var k = 0; k < options.length; k++) {
                					_html += "<option value=\"" + options[k].value + "\">" + options[k].label + "</option>\n";
              					}
            				} 
			                _select.html(_html);
			            }
			        }
			    });
			}
		}
	}
};
/**
 * JS字符串工具类（string.js）
 * 
 * @author 程伟平 2012-4-12
 */
function StringUtil() {
  
}

/**
 * 删除字符串前导空白和尾部空白
 * 
 * @author 程伟平 2012-4-12
 */
StringUtil.trim = function(str) {
  return (str||"").replace(/(^[\s]*)|([\s]*$)/g, "");
};

/**
 * 使用给定的子字符串全部替换此字符串所有匹配给定的正则表达式的子字符串
 * 
 * @author 程伟平 2013-6-27
 */
StringUtil.replaceAll = function(str, regex, replace) {
  return (str||"").replace(new RegExp(regex,"gm"),replace);
};

/**
 * 保留字符串固定长度，超过部分转换为省略号 参数说明：字符串 固定度 位置 是否加省略号标志
 * 
 * @author 程伟平 2012-4-12
 */
StringUtil.convert = function (str, count, position, flag) {
  str = str.replace(/\n|\r/g,''); 
  if(str != null && str.length > count) {
    var ellipsis = (flag != null && flag == 0) ? "" : "......";
    if("mid" == position) {
      return str.substring(0, count / 2) + ellipsis + str.substring(str.length - (count / 2), str.length);
    } else {
      return str.substring(0, count) + ellipsis;
    }
  }
  return str;
};

/**
 * JS表单校验静态工具类
 * 
 * @author 程伟平 2012-4-12
 */
function CheckUtil() {
	
}

/**
 * 删除字符串前导空白和尾部空白
 * 
 * @author 程伟平 2012-4-12
 */
CheckUtil.trim = function(str) {
	return (str || "").replace(/(^[\s]*)|([\s]*$)/g, "");
};

/**
 * 删除字符串前导空白
 * 
 * @author 程伟平 2012-4-12
 */
CheckUtil.leftTrim = function(str) {
	return (str || "").replace(/(^[\s]*)/g, "");
};

/**
 * 删除字符串尾部空白
 * 
 * @author 程伟平 2012-4-12
 */
CheckUtil.rightTrim = function(str) {
	return (str || "").replace(/([\s]*$)/g, "");
};

/**
 * 校验是否为非空
 * 
 * @author 程伟平 2012-4-12
 * @return 是：true； 否：false；
 */
CheckUtil.isNotNull = function (str) {
	return null != str && CheckUtil.trim(str).length > 0 ? true : false;
};

/**
 * 校验是否全是数字
 * 
 * @author 程伟平 2012-4-12
 * @return 是：true； 否：false；
 */
CheckUtil.isNumeric  = function (str) {
	var pattern=/^\d+$/;
	return pattern.test(str);
};

/**
 * 校验是否是整数
 * 
 * @author 程伟平 2012-4-12
 * @param str 字符串
 * @param symbol 符号 说明："+"表示正整数；"-"表示负整数。
 * @return 是：true； 否：false；
 */
CheckUtil.isInt = function (str, symbol) {
	// 正整数
	if(symbol === "+") {
		var pattern=/^([+]?)(\d+)$/;
		return pattern.test(str);
	}
	// 负整数
	else if(symbol === "-") {
		var pattern=/^-(\d+)$/;
		return pattern.test(str);
	} 
	// 整数
	else {
		var pattern=/^([+-]?)(\d+)$/;
		return pattern.test(str);
	}
};

/**
 * 校验是否为浮点数
 * 
 * @author 程伟平 2012-4-12
 * @param str 字符串
 * @param symbol 符号 说明："+"表示正整数；"-"表示负整数。
 * @return 是：true； 否：false；
 */
CheckUtil.isFloat=function(str, symbol) {
	// 正浮点数
	if(symbol === "+") {
		var pattern=/^([+]?)\d*\.\d+$/;
		return pattern.test(str);
	}
	// 负浮点数
	else if(symbol === "-") {
		var pattern=/^-\d*\.\d+$/;
		return pattern.test(str);
	} 
	// 浮点数
	else {
		var pattern=/^([+-]?)\d*\.\d+$/;
		return pattern.test(str);
	}
};

/**
 * 校验是否仅中文
 * 
 * @author 程伟平 2012-4-12
 * @return 是：true； 否：false；
 */
CheckUtil.isChinese=function(str){
	var pattern=/[\u4E00-\u9FA5\uF900-\uFA2D]+$/;
	return pattern.test(str);
};
   /** 
    * 获取字符真实的长度
    * 如果包含中文 算 2个字符 
    */
 CheckUtil.trueLength= function(s) {
	  var l = 0;
	  var a = s.split("");
	  for (var i=0;i<a.length;i++) {
	     if (CheckUtil.isChinese(a[i])) {
	        l+=2;
	     } else {
	        l++;
	     }
	  }
	  return l;
    }
/**
 * 校验是否仅ACSII字符
 * 
 * @author 程伟平 2012-4-12
 * @return 是：true； 否：false；
 */
CheckUtil.isACSII=function(str){
	var pattern=/^[\x00-\xFF]+$/;
	return pattern.test(str);
};
/**
 * 校验是否仅 拼音
 * 
 * @author ouyang 2012-4-12
 * @return 是：true； 否：false；
 */
CheckUtil.isACSII=function(str){
	var pattern=/^[a-zA-Z]+$/;
	return pattern.test(str);
};

/**
 * 校验手机号码
 * 
 * @author 程伟平 2012-4-12
 * @return 是：true； 否：false；
 */
CheckUtil.isMobile = function (str) {
	var pattern = /^1[3456789]\d{9}$/;
	return pattern.test(str);
};
/**
 * 校验是否为Q号码
 */
CheckUtil.isQQ = function (str) {
	var pattern = /^(\d){4,15}$/;
	return pattern.test(str);
};
/**
 * 校验是否电话号码
 * 
 * @author 程伟平 2012-4-12
 * @return 是：true； 否：false；
 */
CheckUtil.isPhone = function (str) {
	var pattern = /^(0[\d]{2,3}-)?\d{6,8}(-\d{3,4})?$/;
	return pattern.test(str);
};

/**
 * 校验是否URL地址
 * 
 * @author 程伟平 2012-4-12
 * @return 是：true； 否：false；
 */
CheckUtil.isUrl=function(str_url){ 
       var strRegex = "^((https|http|ftp|rtsp|mms)?://)"  
       + "?(([0-9a-z_!~*'().&=+$%-]+: )?[0-9a-z_!~*'().&=+$%-]+@)?" //ftp的user@  
       + "(([0-9]{1,3}\.){3}[0-9]{1,3}" // IP形式的URL- 199.194.52.184  
       + "|" // 允许IP和DOMAIN（域名） 
       + "([0-9a-z_!~*'()-]+\.)*" // 域名- www.  
       + "([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]\." // 二级域名  
       + "[a-z]{2,6})" // first level domain- .com or .museum  
       + "(:[0-9]{1,4})?" // 端口- :80  
        + "((/?)|" // a slash isn't required if there is no file name  
        + "(/[0-9a-z_!~*'().;?:@&=+$,%#-]+)+/?)$";  
       var re=new RegExp(strRegex);  
        //re.test() 
       if (re.test(str_url)){ 
           return (true);  
       }else{  
           return (false);  
       } 
    } 

/**
 * 校验是否电子邮件地址
 * 
 * @author 程伟平 2012-4-12
 * @return 是：true； 否：false；
 */
CheckUtil.isEmail = function (str) {
	var pattern = /^([a-zA-Z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/;
	return pattern.test(str);
};

/**
 * 校验是否身份证
 * 
 */
CheckUtil.isIdcard = function(id) {
 var idNum = id.toLocaleUpperCase();
 var errors = new Array(
  "验证通过",
  "身份证号码位数不对",
   "身份证含有非法字符",
  "身份证号码校验错误",
  "身份证地区非法"
 );
 //身份号码位数及格式检验
 var re;
 var len = idNum.length;
 //身份证位数检验
 if (len != 15 && len != 18) {
     //return errors[1];
     return false;
 } else if (len == 15) {
     re = new RegExp(/^(\d{6})()?(\d{2})(\d{2})(\d{2})(\d{3})$/);
 } else {
     re = new RegExp(/^(\d{6})()?(\d{4})(\d{2})(\d{2})(\d{3})([0-9xX])$/);
 }
 var area = { 11: "北京", 12: "天津", 13: "河北", 14: "山西",
     15: "内蒙古", 21: "辽宁", 22: "吉林", 23: "黑龙江", 31: "上海",
     32: "江苏", 33: "浙江", 34: "安徽", 35: "福建", 36: "江西",
     37: "山东", 41: "河南", 42: "湖北", 43: "湖南", 44: "广东",
     45: "广西", 46: "海南", 50: "重庆", 51: "四川", 52: "贵州",
     53: "云南", 54: "西藏", 61: "陕西", 62: "甘肃", 63: "青海",
     64: "宁夏", 65: "新疆", 71: "台湾", 81: "香港", 82: "澳门",
     91: "国外"
 }
 var idcard_array = new Array();
 idcard_array = idNum.split("");
 //地区检验
 if (area[parseInt(idNum.substr(0, 2))] == null) {
     return false;
     //return errors[4];
 }
 //出生日期正确性检验
 var a = idNum.match(re);
 if (a != null) {
     if (len == 15) {
         var DD = new Date("19" + a[3] + "/" + a[4] + "/" + a[5]);
         var flag = DD.getYear() == a[3] && (DD.getMonth() + 1) == a[4] && DD.getDate() == a[5];
     }
     else if (len == 18) {
         var DD = new Date(a[3] + "/" + a[4] + "/" + a[5]);
         var flag = DD.getFullYear() == a[3] && (DD.getMonth() + 1) == a[4] && DD.getDate() == a[5];
     }
     if (!flag) {
         return false;
         //return "身份证出生日期不对！"; 
     }
     //检验校验位
     if (len == 18) {
         S = (parseInt(idcard_array[0]) + parseInt(idcard_array[10])) * 7
            + (parseInt(idcard_array[1]) + parseInt(idcard_array[11])) * 9
            + (parseInt(idcard_array[2]) + parseInt(idcard_array[12])) * 10
            + (parseInt(idcard_array[3]) + parseInt(idcard_array[13])) * 5
            + (parseInt(idcard_array[4]) + parseInt(idcard_array[14])) * 8
            + (parseInt(idcard_array[5]) + parseInt(idcard_array[15])) * 4
            + (parseInt(idcard_array[6]) + parseInt(idcard_array[16])) * 2
            + parseInt(idcard_array[7]) * 1
            + parseInt(idcard_array[8]) * 6
            + parseInt(idcard_array[9]) * 3;
         Y = S % 11;
         M = "F";
         JYM = "10X98765432";
         M = JYM.substr(Y, 1); //判断校验位
         //检测ID的校验位
         if (M == idcard_array[17]) {
             return true;
             //return ""; 
         }
         else {
             return false;
             //return errors[3];
         }
     }
 } else {
     return false;
     //return errors[2];
 }
 return true;
}
/**
 * 校验是否邮政编码
 * 
 * @author 程伟平 2012-4-12
 * @return 是：true； 否：false；
 */
CheckUtil.isZipCode = function (str) {
	var pattern = /^\d{6}$/;
	return pattern.test(str);
};

/**
 * 校验是否时间
 * 
 * @author 程伟平 2012-4-12
 * @return 是：true； 否：false；
 */
CheckUtil.isDate = function (str) {
	if(!/\d{4}(\.|\/|\-)\d{1,2}(\.|\/|\-)\d{1,2}/.test(str)){return false;}
	var r = str.match(/\d{1,4}/g);
	if(r==null){return false;};
	var d= new Date(r[0], r[1]-1, r[2]);
	return (d.getFullYear()==r[0]&&(d.getMonth()+1)==r[1]&&d.getDate()==r[2]);
};

/**
 * 校验字符串：由6-20位字母、数字、下划线(常用于校验用户名)
 * 
 * @author 程伟平 2012-4-12
 * @return 是：true； 否：false；
 */
CheckUtil.isFixedString6_20 = function(str){
	var pattern=/^(\w){6,20}$/;
	return pattern.test(str);
};

/**
 * 校验字符串——由5-20位字母、数字、下划线(常用于校验用户名)
 * 
 * @author 程伟平 2012-4-12
 * @return 是：true； 否：false；
 */
CheckUtil.isFixedString5_20 = function(str){
	var pattern=/^(\w){5,20}$/;
	return pattern.test(str);
};

/**
 * 校验密码字符串：由6-20位数字、字母和特殊符号组成。
 * 
 * @author 程伟平 2012-4-12
 * @return 是：true； 否：false；
 */
CheckUtil.isPassword = function(str){
	var pattern=/^[\w\W]{6,20}$/;
	return pattern.test(str);
};

/**
 * 校验密码字符串：匹配一个由字母，数字或特殊字符组成的长度为6-20的字符串，字符串中必须同时包含字母和数字
 * 
 * @author fbc
 * @return 是：true； 否：false；
 */
CheckUtil.isUserPassword = function(str){
	var pattern=/^(?![^A-Za-z]+$)(?![^0-9]+$)[\x21-x7e]{6,20}$/;
	return pattern.test(str);
};

//9-13  添加
CheckUtil.isStaffPassword = function(str){
	var pattern=/^(?!(?:\d+|[a-zA-Z]+)$)[\da-zA-Z]{6,20}$/;
	return pattern.test(str);
};
/**
 * 校验邀请码，字符串中只能包含字母和数字,且必须是6位
 *
 * @author fbc
 * @return 是：true； 否：false；
 */
CheckUtil.isInviteCode = function(str){
    var pattern=/^[A-Za-z0-9]{6}$/;
    return pattern.test(str);
};

/**
 * 校验密码强度 说明：1：弱；2：中；3：强；
 * 
 * @author 程伟平 2012-5-15
 * @return 1：弱；2：中；3：强；
 */
CheckUtil.passwordStrength = function(password){
	if (password.length < 6) {
		return 1;
	}
	return password.match(/[a-z](?![^a-z]*[a-z])|[A-Z](?![^A-Z]*[A-Z])|\d(?![^\d]*\d)|[^a-zA-Z\d](?![a-zA-Z\d]*[^a-zA-Z\d])/g).length;
};

/**
 * 只能输入数字 带小数点
 */
function NumberOnly(obj){
	$(obj).bind('keypress',function(event){
		var keyCode=window.event?event.keyCode:event.which;
	    if((keyCode>=48&&keyCode<=57)||keyCode==45||keyCode==46||keyCode==37||keyCode==39||keyCode==8){    	
	    	event.returnValue=true;
	    	return true;
	    }else{
	    	event.returnValue=false;
	    	return false;
	    }
    });
}
function NumberOnly2(obj,isFloat){
	var ok = true;
	var decmal = "^([+-]?)\\d*\\.\\d+$",//浮点数
		decmal1 = "^-?[1-9]\\d*$";//整数
	var v = obj.val(),
		a = new RegExp(decmal).test(v),
		b=new RegExp(decmal1).test(v);
	if(isFloat){
		if(!(a||b)){
			obj[0].value = v.substring(0,v.length-1);
			ok= false;
		}
	}else{
		if(!b&&v){
			//obj[0].value = v.substring(0,v.length-1);
			if(v.split('.').length>2){
				obj[0].value = 0;
			}
			if(v.split('.').length==2){
				var iv = parseInt(v.split('.')[0]);
				obj[0].value = iv>0?iv:0;
			}
			ok= false;
		}
	}
	return ok;
}
//计算天数差的函数，通用 
function dateDiff(interval,date1,date2){
 var objInterval = {'D':1000*60*60*24,'H':1000*60*60,'M':1000*60,'S':1000,'T':1};
 interval = interval.toUpperCase();
 var darr = date1.split(' ');
 if(darr.length>0){
 	date1 = darr[0];
 }
 var dt1 = Date.parse(date1.replace(/-/g, '/'));
 date2 = date2 || new Date().dateFormat("yyyy-MM-dd");
 var dt2 = Date.parse(date2.replace(/-/g, '/'));
 try
 {
  return Math.round((dt1 - dt2) / objInterval[interval]);
 }
 catch (e)
 {
  return e.message;
 }
}
Date.prototype.dateFormat=function(fmt) {          
     var o = {          
 	    "M+" : this.getMonth()+1, //月份          
 	    "d+" : this.getDate(), //日          
 	    "h+" : this.getHours()%12 == 0 ? 12 : this.getHours()%12, //小时          
 	    "H+" : this.getHours(), //小时          
 	    "m+" : this.getMinutes(), //分          
 	    "s+" : this.getSeconds(), //秒          
 	    "q+" : Math.floor((this.getMonth()+3)/3), //季度          
 	    "S" : this.getMilliseconds() //毫秒          
     };          
     var week = {          
 	    "0" : "\u65e5",          
 	    "1" : "\u4e00",          
 	    "2" : "\u4e8c",          
 	    "3" : "\u4e09",          
 	    "4" : "\u56db",          
 	    "5" : "\u4e94",          
 	    "6" : "\u516d"         
     };          
     if(/(y+)/.test(fmt)){          
         fmt=fmt.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length));          
     }          
     if(/(E+)/.test(fmt)){          
         fmt=fmt.replace(RegExp.$1, ((RegExp.$1.length>1) ? (RegExp.$1.length>2 ? "\u661f\u671f" : "\u5468") : "")+week[this.getDay()+""]);          
     }          
     for(var k in o){          
         if(new RegExp("("+ k +")").test(fmt)){          
             fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));          
         }          
     }          
     return fmt;          
 }    
 
 
 
 //自动显示  (默认情况下会自动把需要确认输入框赋值 reciveRole_re '_re')
 function autoDisplay(target,data,isFormat){
        if(!data || data=='' || typeof(data)=='undefined'){
            return; //空数据
        }
 	    var off = $(target).offset(),
 		l = off.left,
 		t = off.top,
 		w = $(target).width(),
 		h = $(target).height();
 		var html = "";
 		if(isFormat){
 			html+='<ul>';
 			data = eval('('+data+')');
 			for(var i=0;i<data.length;i++){
 			    var title=data[i].title;
 			    if(title && title.indexOf("_no_display_")>0){
 			      title = title.replace("_no_display_","'");
 			    }
 				html+='<li><a did="'+data[i].id+'">'+title+'</a></li>';
 			}
 			html+='</ul>';
 		}else{
 			html = data;
 		}
 	var div = $('<div/>').addClass('autoSlide').css({left:l,top:(t+h+4),width:w}).hide().html(html).appendTo('body');
 	div.data("target",target);
 	var t = null;
 	$(target).hover(function(){
		div.show();
	},function(){
		t = setTimeout(function(){div.hide();},10);
		div.hover(function(){clearTimeout(t);},function(){t = setTimeout(function(){div.hide();},10);});
	}).bind('mousemove',function(){div.show();});
		div.find('a').click(function(){
		$(div.data("target")).val($(this).html());
		div.fadeOut(1000); //  自动影藏
		var t_name = $(target).attr("name"); // 自动查询是否需要确认 和填充
		if($("input[name='"+t_name+"_re']").length>0){
		    $("input[name='"+t_name+"_re']").val($(this).html());
		}
		return false;
	});
	$(window).resize(function() {
	  var o = div.data('target');
	  var off = $(target).offset(),
 		l = off.left,
 		t = off.top,
 		w = $(target).width(),
 		h = $(target).height();
	  div.css({left:l,top:(t+h+4)});
	});
 }
 
function shake(ele,cls,times){
	var i = 0,t= false ,o =ele.attr("class")+" ",c ="",times=times||2;
	if(t) return;
	t= setInterval(function(){
		i++;
		c = i%2 ? o+cls : o;
		ele.attr("class",c);
		if(i==2*times){
			clearInterval(t);
			ele.removeClass(cls);
		}
	},200);
};
/**
 * 切换验证码
 */
function switchCaptcha(){
	var url = JSCTX+"/captcha?a=" + Math.random();
	$("#captcha_img").attr("src", url);
};


/**
 * 校验是否全是字母
 * 
 * @author 张春艳 2013-10-20
 * @return 是：true； 否：false；
 */
CheckUtil.isLetter  = function (str) {
	var pattern2=/^[A-Za-z]+$/;
	return pattern2.test(str);
};

/**
 *接单密码正则表达式
 *数字、字母、下划线和@组成
 */
CheckUtil.isJdPwd  = function (str) {
	var pattern2=/^[A-Za-z0-9_@]+$/;
	return pattern2.test(str);
};

/**
 *检验是否包含非法字符(表单提交和过滤器判断对应)
 *
 * @author 卫江波 2014-10-29
 * @return 是：true； 否：false；
 */
CheckUtil.isIllegalCha  = function (str) {         
	 var illegalCha = new Array("javascript:", "mocha:", "eval(", "vbscript:",
								 "livescript:", "expression(", "url(", "&{", "&#",
								 "src=", "alert", "script", "confirm", "window",
								 "prompt", "expression", "/**/");
	 var falg = 0;
	 var str = str.toLowerCase();
	 for ( var int = 0; int < illegalCha.length; int++) {
		if(str.indexOf(illegalCha[int]) > -1){
			falg = 1;
			break;
		}
	 }
	 if(falg == 1){
		 return true;
	 }
	 return false;
    
};

/**
 * 强制显示两位小数
 * @param x
 * @returns
 */
function toDecimal(x) {
    var f = parseFloat(x);
    if (isNaN(f)) {
        return false;
    }
    var f = Math.round(x*100)/100;
    var s = f.toString();
    var rs = s.indexOf('.');
    if (rs < 0) {
        rs = s.length;
        s += '.';
    }
    while (s.length <= rs + 2) {
        s += '0';
    }
    return s;
}
function isPhoneBrowse() {
    var sUserAgent = navigator.userAgent.toLowerCase();
    var bIsIpad = sUserAgent.match(/ipad/i) == "ipad";
    var bIsIphoneOs = sUserAgent.match(/iphone os/i) == "iphone os";
    var bIsMidp = sUserAgent.match(/midp/i) == "midp";
    var bIsUc7 = sUserAgent.match(/rv:1.2.3.4/i) == "rv:1.2.3.4";
    var bIsUc = sUserAgent.match(/ucweb/i) == "ucweb";
    var bIsAndroid = sUserAgent.match(/android/i) == "android";
    var bIsCE = sUserAgent.match(/windows ce/i) == "windows ce";
    var bIsWM = sUserAgent.match(/windows mobile/i) == "windows mobile";
    // document.writeln("您的浏览设备为：");
    if (bIsIpad || bIsIphoneOs || bIsMidp || bIsUc7 || bIsUc || bIsAndroid || bIsCE || bIsWM) {
    	return true;
    }  
    return false;
}
function getParamValue(name) {
	   var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)","i");
	   var r = window.location.search.substr(1).match(reg);
	   if (r!=null) return unescape(r[2]); return null;
}
// 地址转 json
function parseJson(param)
{
    var obj={};
    var keyvalue=[];
    var key="",value="";       
    var paraString = param.split("&");
    for(var i in paraString)
    {
        keyvalue=paraString[i].split("=");
        key=keyvalue[0];
        value=keyvalue[1];
        obj[key]=value;            
    }        
    return obj;
}
/**
 * 校验是否图片
 * 
 * @author 冯宝春 2017-7-20
 * @return 是：true； 否：false；
 */
CheckUtil.isImg = function (str) {
	var pattern = /\.(jpg|JPG|JPEG|jpeg|bmp|BMP|png|PNG|GIF|gif)$/;
	return null != str && pattern.test(str) ? true : false;
};

//现有图片预览
function newPic(o,imgPaths){
	if (window.FileReader) {
		var file = event.srcElement.files[0];
		var reader = new FileReader();  
	   	reader.onload = function(event){
	   		$("#new"+imgPaths).attr('src',event.target.result);
	   	}
	   	reader.readAsDataURL(file);
	} else if (document.all) {//IE8-
    	o.select();
	    var reallocalpath = document.selection.createRange().text//IE下获取实际的本地文件路径
	    if (window.ie6) $("#new"+imgPaths).attr('src',reallocalpath); //IE6浏览器设置img的src为本地路径可以直接显示图片
	    else { //非IE6版本的IE由于安全问题直接设置img的src无法显示本地图片，但是可以通过滤镜来实现，IE10浏览器不支持滤镜，需要用FileReader来实现，所以注意判断FileReader先
			var pic = $("#new"+imgPaths).get(0);
	        pic.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod='scale',src=\"" + reallocalpath + "\")";
	        $("#new"+imgPaths).attr('src','');
	    }
	} 		  
}